﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CommonLibraries.DeviceLibrary
{
    public interface IGPS:IDisposable
    {
        /// <summary>
        /// Occurs when HasSolution changes
        /// </summary>
        event EventHandler HasSolutionChanged;

        /// <summary>
        /// Occurs when PowerState changes
        /// </summary>
        event EventHandler PowerStateChanged;

        /// <summary>
        /// Occurs when Lat/Long is updated
        /// </summary>
        event EventHandler PositionReceived;

        NmeaGGA NmeaGGA
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the GPS power state
        /// </summary>
        PowerStates PowerState
        {
            get;
            set;
        }

        /// <summary>
        /// Gets if the GPS has a location solution
        /// </summary>
        bool HasSolution
        {
            get;
        }

        /// <summary>
        /// Gets the unique unit serial number
        /// </summary>
        int SerialNumber
        {
            get;
        }

        /// <summary>
        /// Resets the GPS unit
        /// </summary>
        void Reset();
    }
}
